#ifndef MAINWINDOW_H
#define MAINWINDOW_H
//权重
#define  pow_1	1
#define  pow_2	16*16
#define  pow_3	16*16*16*16
#define  pow_4	16*16*16*16*16*16
#define  pow_5	16*16*16*16*16*16*16*16
#define  pow_6	16*16*16*16*16*16*16*16*16*16
#define  pow_7	16*16*16*16*16*16*16*16*16*16*16*16
#define  pow_8	16*16*16*16*16*16*16*16*16*16*16*16*16*16

//缓冲区大小
#define  data_temp_size_MB 256
#define  data_temp_size  data_temp_size_MB*1024*1024
#define  C_UINT16_SIZE  (data_temp_size / 2)
#define  data_32b_size	data_temp_size/8

#include <QMainWindow>
#include <qglobal.h>
#include <QFileDialog>
#include <assert.h>

namespace Ui {
class MainWindow;

}



class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
    int lineLength;
    int frameLength;
    bool frameInc;
    bool powInc;
    quint64 startValue;



    void incDataCheck();
    void QString2char(QString  str, char*  ch);
    void printLog(QString str);

private slots:
    void on_pushButton_clicked();



    void refreshFileConfig();

private:
    Ui::MainWindow *ui;
};


typedef struct {
    //file info
    QFileInfo fileinfo;
    //data parameter perset
    int lineLength;  //行长度，单位字节
    int frameLength; //帧长度，单位行
    bool frameInc; //帧内增减性
    bool powInc;    //权重增减性
    quint64 startValue; //第一个值
    quint64 start_offset; //起始偏移字节数
    //file parameter while checking the whole file
    quint64 time_cnt;  //循环读取次数
    quint64 err_cnt_threshold; //写入报告和打印的错误数量上限，超过这个值将不再打印



}incDataFileParam;






typedef   unsigned   char   byte;
typedef   quint64 UInt64;

#endif // MAINWINDOW_H
